import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.font_manager as fm
from datetime import datetime
import numpy as np

# 设置中文字体
plt.rcParams['font.sans-serif'] = ['SimHei']  # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False   # 用来正常显示负号

# 读取Excel文件
file_path = '2020年销售数据.xlsx'

# 读取数据
df = pd.read_excel(file_path, sheet_name='data')

# 确保销售日期是datetime类型
df['销售日期'] = pd.to_datetime(df['销售日期'])

# 筛选京东和拼多多的数据
jd_data = df[df['销售渠道'] == '京东']
pdd_data = df[df['销售渠道'] == '拼多多']

# 按日期和渠道分组汇总销售数量
jd_daily = jd_data.groupby('销售日期')['销售数量'].sum().reset_index()
pdd_daily = pdd_data.groupby('销售日期')['销售数量'].sum().reset_index()

# 创建图表
plt.figure(figsize=(14, 8))

# 绘制京东的折线图
plt.plot(jd_daily['销售日期'], jd_daily['销售数量'],
         label='京东', color='#e74c3c', linewidth=2, marker='o', markersize=4)

# 绘制拼多多的折线图
plt.plot(pdd_daily['销售日期'], pdd_daily['销售数量'],
         label='拼多多', color='#3498db', linewidth=2, marker='s', markersize=4)

# 设置图表标题和标签
plt.title('2020年京东和拼多多销售数量趋势图', fontsize=16, fontweight='bold', pad=20)
plt.xlabel('销售日期', fontsize=12)
plt.ylabel('销售数量', fontsize=12)

# 设置图例
plt.legend(fontsize=12, loc='upper left')

# 设置网格
plt.grid(True, alpha=0.3, linestyle='--')

# 优化x轴日期显示
plt.gcf().autofmt_xdate()

# 调整布局
plt.tight_layout()

# 显示图表
plt.show()

# 打印一些统计信息
print("数据统计信息:")
print(f"京东总销售数量: {jd_data['销售数量'].sum():,}")
print(f"拼多多总销售数量: {pdd_data['销售数量'].sum():,}")
print(f"数据时间范围: {df['销售日期'].min().strftime('%Y-%m-%d')} 到 {df['销售日期'].max().strftime('%Y-%m-%d')}")